Nested Hoare Triples and Frame Rules for Higher-Order Store
نویسندگان
چکیده
Separation logic is a Hoare-style logic for reasoning about programs withheap-allocated mutable data structures. As a step toward extending separation logic tohigh-level languages with ML-style general (higher-order) storage, we investigate the com-patibility of nested Hoare triples with several variations of higher-order frame rules.The interaction of nested triples and frame rules can be subtle, and the inclusion ofcertain frame rules is in fact unsound. A particular combination of rules can be shownconsistent by means of a Kripke model where worlds live in a recursively defined ultrametricspace. The resulting logic allows us to elegantly prove programs involving stored code. Inparticular, using recursively defined assertions, it leads to natural specifications and proofsof invariants required for dealing with recursion through the store.
منابع مشابه
Crowfoot: A Verifier for Higher-Order Store Programs
We present Crowfoot, an automatic verification tool for imperative programs that manipulate procedures dynamically at runtime; these programs use a heap that can store not only data but also code (commands or procedures). Such heaps are often called higher-order store, and allow for instance the creation of new recursions on the fly. One can use higher-order store to model phenomena such as run...
متن کاملAbout Hoare Logics for Higher-Order Store
We present a Hoare logic for a simple imperative whilelanguage with stored commands, ie. stored parameterless procedures. Stores that may contain procedures are called higher-order. Soundness of our logic is established by using denotational rather than operational semantics. The former is employed to elegantly account for an inherent difficulty of higher-order store, namely that assertions nec...
متن کاملBottom-Up Shape Analysis
In this paper we present a new shape analysis algorithm. The key distinguishing aspect of our algorithm is that it is completely compositional, bottom-up and non-iterative. We present our algorithm as an inference system for computing Hoare triples summarizing heap manipulating programs. Our inference rules are compositional: Hoare triples for a compound statement are computed from the Hoare tr...
متن کاملHoare Logic for Higher Order Store Using Simple Semantics
We revisit the problem of providing a Hoare logic for higher order store programs, considered by Reus and Streicher (ICALP, 2005). In a higher order store program, the procedures/commands of the program are not fixed, but can be manipulated at runtime by the program itself; such programs provide a foundation to study language features such as reflection, dynamic loading and runtime code generat...
متن کاملTowards a Unified Theory of Operational and Axiomatic Semantics
This paper presents a nine-rule language-independent proof system that takes an operational semantics as axioms and derives program properties, including ones corresponding to Hoare triples. This eliminates the need for language-specific Hoare-style proof rules in order to verify programs, and, implicitly, the tedious step of proving such proof rules sound for each language separately. The key ...
متن کاملذخیره در منابع من
با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید
عنوان ژورنال:
- Logical Methods in Computer Science
دوره 7 شماره
صفحات -
تاریخ انتشار 2009